tests/installed: Use temporary directories more consistently
authorColin Walters <walters@verbum.org>
Thu, 22 Mar 2018 15:36:33 +0000 (11:36 -0400)
committerAtomic Bot <atomic-devel@projectatomic.io>
Thu, 22 Mar 2018 19:01:52 +0000 (19:01 +0000)
This is prep for splitting off "nondestructive" tests which
we can run in parallel from the destructive/invasive ones which
e.g. change the host refspec, do deployments.

The `cd` invocation in `prepare_tmpdir` wasn't working because we were running
it in a subshell. Fix this by dropping the subshell.

Closes: #1509
Approved by: jlebon

tests/installed/itest-bare-unit.sh
tests/installed/itest-bareuser-nouserxattrs.sh
tests/installed/itest-payload-link.sh
tests/installed/itest-pull-space.sh
tests/installed/itest-pull.sh
tests/installed/itest-remotes.sh
tests/installed/libinsttest.sh

index 28ea4651c5cba904400fe90cc0f3c6561c3f72ca..fe07f24f2f0892ba1aaa64fce61cc18053c326a5 100755 (executable)
@@ -15,14 +15,7 @@ dn=$(dirname $0)
 export G_TEST_SRCDIR=$(realpath $dn/../..)
 
 # Use /var/tmp to hopefully use XFS + O_TMPFILE etc.
-tempdir=$(mktemp -d /var/tmp/tap-test.XXXXXX)
-touch ${tempdir}/.testtmp
-function cleanup () {
-    if test -f ${tempdir}/.testtmp; then
-             rm "${tempdir}" -rf
-    fi
-}
-trap cleanup EXIT
-cd ${tempdir}
+prepare_tmpdir /var/tmp
+trap _tmpdir_cleanup EXIT
 /usr/libexec/installed-tests/libostree/test-basic.sh
 /usr/libexec/installed-tests/libostree/test-basic-c
index 06d3e109ff0c7ae36da4cbb3ee946e47bf12365c..c8c07948a7580071d7025b798cff35fc50e90182 100755 (executable)
@@ -10,9 +10,8 @@ set -xeuo pipefail
 dn=$(dirname $0)
 . ${dn}/libinsttest.sh
 
-test_tmpdir=$(prepare_tmpdir)
+prepare_tmpdir
 trap _tmpdir_cleanup EXIT
-cd ${test_tmpdir}
 
 mkdir mnt
 mount -t tmpfs tmpfs mnt
index 807d497d8b6254d1c794904950ec737f5d82fc6e..7469f43edcf96d0cdcc6aaab7f9bfdf3302c2da2 100755 (executable)
@@ -26,8 +26,9 @@ dn=$(dirname $0)
 
 echo "1..1"
 
-cd /var/srv
-mkdir repo
+# Use /var/tmp so we have O_TMPFILE etc.
+prepare_tmpdir /var/tmp
+trap _tmpdir_cleanup EXIT
 ostree --repo=repo init --mode=archive
 echo -e '[archive]\nzlib-level=1\n' >> repo/config
 host_nonremoteref=$(echo ${host_refspec} | sed 's,[^:]*:,,')
@@ -39,12 +40,10 @@ run_tmp_webserver $(pwd)/repo
 origin=$(cat ${test_tmpdir}/httpd-address)
 
 cleanup() {
-    cd ${oldpwd}
+    cd ${test_tmpdir}
     umount mnt || true
-    test -n "${blkdev}" && losetup -d ${blkdev} || true
-    rm -rf mnt testblk.img
+    test -n "${blkdev:-}" && losetup -d ${blkdev} || true
 }
-oldpwd=`pwd`
 trap cleanup EXIT
 
 mkdir mnt
@@ -57,29 +56,25 @@ fi
 mkfs.xfs -m reflink=1 ${blkdev}
 
 mount ${blkdev} mnt
+cd mnt
 
-test_tmpdir=$(pwd)/mnt
-cd ${test_tmpdir}
-
+# Test that coreutils will do reflink
 touch a
-if cp --reflink a b; then
-    mkdir repo
-    ostree --repo=repo init
-    ostree config --repo=repo set core.payload-link-threshold 0
-    ostree --repo=repo remote add origin --set=gpg-verify=false ${origin}
-    ostree --repo=repo pull --disable-static-deltas origin ${host_nonremoteref}
-    find repo -type l -name '*.payload-link' >payload-links.txt
-    assert_not_streq "$(wc -l < payload-links.txt)" "0"
+cp --reflink a b
+mkdir repo
+ostree --repo=repo init
+ostree config --repo=repo set core.payload-link-threshold 0
+ostree --repo=repo remote add origin --set=gpg-verify=false ${origin}
+ostree --repo=repo pull --disable-static-deltas origin ${host_nonremoteref}
+find repo -type l -name '*.payload-link' >payload-links.txt
+assert_not_streq "$(wc -l < payload-links.txt)" "0"
 
-    # Disable logging for inner loop, otherwise it'd be enormous
-    set +x
-    cat payload-links.txt | while read i; do
-        payload_checksum=$(basename $(dirname $i))$(basename $i .payload-link)
-        payload_checksum_calculated=$(sha256sum $(readlink -f $i) | cut -d ' ' -f 1)
-        assert_streq "${payload_checksum}" "${payload_checksum_calculated}"
-    done
-    set -x
-    echo "ok pull creates .payload-link"
-else
-    echo "ok # SKIP no reflink support in the file system"
-fi
+# Disable logging for inner loop, otherwise it'd be enormous
+set +x
+cat payload-links.txt | while read i; do
+    payload_checksum=$(basename $(dirname $i))$(basename $i .payload-link)
+    payload_checksum_calculated=$(sha256sum $(readlink -f $i) | cut -d ' ' -f 1)
+    assert_streq "${payload_checksum}" "${payload_checksum_calculated}"
+done
+set -x
+echo "ok pull creates .payload-link"
index 36703a40e57716defd1972ac0bdd65cf3109409d..8d218b15b1deabf2010935410a0100ff4d44767e 100755 (executable)
@@ -6,7 +6,7 @@ set -xeuo pipefail
 dn=$(dirname $0)
 . ${dn}/libinsttest.sh
 
-test_tmpdir=$(prepare_tmpdir)
+prepare_tmpdir
 trap _tmpdir_cleanup EXIT
 
 cd ${test_tmpdir}
index 65cb9449c7a931d94c512fdd69d9f6a1c4298f3b..b80acdbc086b2faeeb0512d3bc85a192bb8f4b83 100755 (executable)
@@ -7,12 +7,10 @@ set -xeuo pipefail
 dn=$(dirname $0)
 . ${dn}/libinsttest.sh
 
-test_tmpdir=$(prepare_tmpdir)
+prepare_tmpdir /var/tmp
 trap _tmpdir_cleanup EXIT
 
 # Take the host's ostree, and make it archive
-cd /var/srv
-rm repo bare-repo -rf
 mkdir repo
 ostree --repo=repo init --mode=archive
 echo -e '[archive]\nzlib-level=1\n' >> repo/config
index 9b48b68f362a73d8b3e18c1cf865bca7334d99e2..8a79015feda00a04a5c01854be86e4a0db5a995a 100755 (executable)
@@ -7,7 +7,7 @@ set -xeuo pipefail
 dn=$(dirname $0)
 . ${dn}/libinsttest.sh
 
-test_tmpdir=$(prepare_tmpdir)
+prepare_tmpdir
 trap _tmpdir_cleanup EXIT
 
 ostree remote list > remotes.txt
index d0ee8c6c925113ae60f2f25b26a6a468610a6279..6d6ba50c41e0ee2a99d7be351ed6a1dc58ff4ced 100644 (file)
@@ -30,10 +30,10 @@ function _tmpdir_cleanup () {
     fi
 }
 prepare_tmpdir() {
-    test_tmpdir=$(mktemp -d)
+    local tmpdir=${1:-/tmp}
+    test_tmpdir=$(mktemp -p ${tmpdir} -d ostree-insttest.XXXXXXXX)
     touch ${test_tmpdir}/.testtmp
     cd ${test_tmpdir}
-    echo ${test_tmpdir}
 }
 
 # This is copied from flatpak/flatpak/tests/test-webserver.sh